package com.tianya.exception;

import com.tianya.domain.enums.Message;
import com.tianya.common.Results;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理器
 */
@RestControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 处理自定义异常
     */
    @ExceptionHandler(CustomException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public Results<String> handleCustomException(CustomException ex) {
        // 使用 Message 枚举返回错误信息
        return Results.error(Message.ERROR.getCode(), ex.getMessage());
    }

    /**
     * 处理其他未捕获的异常
     */
    @ExceptionHandler(Exception.class)
    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    public Results<String> handleException(Exception ex) {
        ex.printStackTrace();
        // 使用 Message 枚举返回错误信息
        return Results.error(Message.ERROR.getCode(), Message.ERROR.getMessage());
    }
}